package day13;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*
* List集合的相关方法
*
* */
public class Demo3 {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        list.add("德华");
        list.add("彦祖");
        list.add("于晏");

        //获取迭代器对象
        Iterator<String> ite = list.iterator();

        //如果使用迭代器遍历对象是如果进行元素增删，有可能出现元素并发异常
//        while(ite.hasNext()){
//            list.add("润发");
//            list.remove("于晏");
//            System.out.println(ite.next());
//        }

        //List集合有个单独的迭代器对象，ListIterator,可以通过当前迭代器进行元素的增删
        ListIterator<String> listIterator = list.listIterator();

        while(listIterator.hasNext()){

            String str = listIterator.next();
            System.out.println(str);
            if(str.equals("彦祖")){
                //移除当前指针指向的元素
                listIterator.remove();

                //使用迭代器增删元素
                listIterator.add("润发");
            }
        }

        System.out.println(list);


    }
}
